This invention relates computer graphics applications.
A frequent task in computer graphics applications is to modify the shape of a graphical object using another graphical object as a guide. This technique is often referred to as enveloping. A typical example of enveloping is to use the outline of a shape to shrink and elongate letterforms, that is, curves defining the outlines of characters' shapes, to simulate the appearance of a banner curling in the wind. The banner shape, which is much simpler than the letterforms themselves, can be manipulated using standard point editing controls. Control points of the letterforms then conform to the general shape of the controlling outline.
A number of computer graphics applications include an enveloping capability. Examples of such computer graphics applications are Freehand® by Macromedia Incorporated (San Francisco, Calif.), Corel DRAW® and KPT Vector Effects®, both by Corel Corporation (Ottawa, Ontario, Canada). These applications use an “outline-sheet” metaphor, where the objects to be deformed are placed on the sheet bounded by an envelope. The user interacts with the envelope by tugging on its outline. As the envelope is manipulated, the details of the objects lying within the envelope move to preserve their position relative to the envelope. For example, if a 2-dimensional (2D) u-v coordinate system is imposed on the envelope, the u-v positions of objects inside the envelope will be the same before and after the edit. The envelope can be very simple and have only a few control points. An object contained inside the envelope can be edited rather effortlessly, even if the object has a multitude of control points. This simple control point editing is the primary attraction of enveloping.
A number of three-dimensional (3D) modeling applications include lattice deformations that are the 3D equivalents of envelopes. Examples of such applications are SoftImage® by SoftImage Corporation (Montreal, Quebec, Canada), and Alias/Wavefront Maya® by Alias/Wavefront Incorporated, a division of Silicon Graphics (Mountain View, Calif.). In lattice deformations, an m×n lattice of envelopes is arranged in three-dimensional space. Typically the lattice is a closed lattice, forming a tube-like structure around a 3D object. Similar to the envelopes in a 2D drawing application, the user can manipulate the lattice, which is a fairly simple 3D object, and thereby change a more complex object lying inside the lattice.
A number of computer image processing applications include a variant of envelopes to perform image deformations. One example of such an application is described by Ron Brinkmann in “The Art and Science of Digital Compositing” (pages 58-63, Morgan Kaufmann publishers, 1999). In these systems, an m×n grid of envelopes is superimposed over an image, thus defining the default mapping of the image pixels into the u-v coordinate system of the grid. A duplicate copy of the image and grid pair (the destination pair) is typically displayed beside the original pair (the source pair). These systems allow either the source or destination grids to be manipulated. When either grid is manipulated, the destination image is regenerated based on preserving the u-v positions of the image pixels relative to the destination grid. This is analogous to the regeneration of the contained object in the drawing applications discussed above.
Even though the drawing applications described above provide a flexible working environment for the users, they do exhibit some shortcomings, which are addressed by the present invention.